package com.wayhome.srpingbootmybatis.test;

import java.util.*;
import java.util.stream.*;
import java.util.function.Function;

public class ListToMapSum {
    public static void main(String[] args) {
        // 假设我们有一个Item类，它有两个字段：key和value
        class Item {
            String key;
            int value;

            public Item(String key, int value) {
                this.key = key;
                this.value = value;
            }

            public String getKey() {
                return key;
            }

            public int getValue() {
                return value;
            }
        }

        // 示例List
        List<Item> itemList = Arrays.asList(
                new Item("key1", 10),
                new Item("key2", 20),
                new Item("key1", 30),
                new Item("key3", 40)
        );

        // 将List转换为Map，相同的key的value求和
        Map<String, Integer> map = itemList.stream()
                .collect(Collectors.toMap(
                        Item::getKey,                      // 键
                        Item::getValue,                    // 值
                        Integer::sum                       // 如果键相同，则对值进行求和
                ));

        // 打印转换后的Map
        map.forEach((key, value) -> System.out.println(key + ": " + value));
    }
}